package com.sg.dto.biz.app.res;

import com.sg.dto.biz.app.common.ExecuteCycleStageDto;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @desc CalculateAcceptAboveFieldsRespDto
 * @使用场景
 */
@Data
public class CalculateAcceptAboveFieldsRespDto
        extends BaseDto
        implements Serializable {

    @ApiModelProperty("执行周期阶段列表")
    private List<ExecuteCycleStageDto> executeCycleStageList = new ArrayList<>();
    /**
     * 是否 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否")
    private String tureOrFalse;
    /**
     * 标准数据计算周期模型 LAST_CYCLE:末级周期 MID_OF_PROCESS_CYCLE:中间周期 MID_PROGRESS_CYCLE:过程中期 SUB_CYCLE:子周期 MID_CYCLE:中期 PARENT_CYCLE:父周期
     */
    @ApiModelProperty("标准数据计算周期模型")
    private String standardDataCalcCycleModel;
    /**
     * 被评对象类型编码 EVA_PORTRAIT:评价画像 EVA_OBJECT:评价对象 FLEVEL_OBJ_TASK_DUTY_DEPT:一级部门目标任务责任部门 OKR_SUBJECT_DEPT:OKR责任主体部门 OKR_SUBJECT_PERSONAL:OKR责任主体个人
     */
    @ApiModelProperty("被评对象类型编码")
    private String evaObjTypeCode;
    /**
     * 生命周期操作 CREATE:新增 DELETE:删除 ARCHIVE:存档 MIXTURE:混合 UNDO_ARCHIVE:撤销存档
     */
    @ApiModelProperty("生命周期操作")
    private String subjectLifeCycleOpt;
    /**
     * 定时任务调度记录ID
     */
    @ApiModelProperty("定时任务调度记录ID")
    private String timingTaskDispatchId;
    /**
     * 父周期开始时间是否定制 TRUE:是 FALSE:否
     */
    @ApiModelProperty("父周期开始时间是否定制")
    private String fatherCycleStartTimeIsModify;
    /**
     * 父周期结束时间是否定制 TRUE:是 FALSE:否
     */
    @ApiModelProperty("父周期结束时间是否定制")
    private String fatherCycleEndTimeIsModify;
    /**
     * 周期开始时间
     */
    @ApiModelProperty("周期开始时间")
    private Date cycleStartTime;
    /**
     * 周期结束时间
     */
    @ApiModelProperty("周期结束时间")
    private Date cycleEndTime;
    /**
     * 周期配置标识
     */
    @ApiModelProperty("周期配置标识")
    private String cycleConfCode;
    /**
     * 时段开始时间
     */
    @ApiModelProperty("时段开始时间")
    private Date timePeriodStartTime;

    /**
     * 时段结束时间
     */
    @ApiModelProperty("时段结束时间")
    private Date timePeriodEndTime;

    /**
     * 通用时间字段1
     */
    @ApiModelProperty("通用时间字段1")
    private Date comTimeField1;

    /**
     * 通用时间字段2
     */
    @ApiModelProperty("通用时间字段2")
    private Date comTimeField2;
    /**
     * 周期类型标识
     */
    @ApiModelProperty("周期类型标识")
    private String cycleTypeCode;

    /**
     * 是否末级周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否末级周期")
    private String isLastCycle;

    /**
     * 自定义字段
     */
    @ApiModelProperty("自定义字段")
    private String customField;

    /**
     * 最近可循环周期类型编码
     */
    @ApiModelProperty("最近可循环周期类型编码")
    private String nextCyclePeriod;
    /**
     * 被评对象内容表类型编码 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表
     */
    @ApiModelProperty("被评对象内容表类型编码")
    private String evaObjTableTypeCode;
    /**
     * 周期ID
     */
    @ApiModelProperty("周期ID")
    private String cycleId;

    /**
     * 是否父周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否父周期")
    private String isParentCycle;

    private String isFatherCycle;

    /**
     * 是否中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否中期")
    private String isMetaphase;

    /**
     * 是否子周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否子周期")
    private String isSubCycle;
    /**
     * 通用数值字段（整数型）
     */
    @ApiModelProperty("通用数值字段（整数型）")
    private Long comNumField;
    /**
     * 汇报任务补偿元素
     */
    @ApiModelProperty("汇报任务补偿元素")
    private Long reportTaskCompElement;

    /**
     * 汇报任务设置元素
     */
    @ApiModelProperty("汇报任务设置元素")
    private String reportTaskPlusSetElement;
    /**
     * 进度值计算参照值
     */
    @ApiModelProperty("进度值计算参照值")
    private Long progressValueCalcReference;

    /**
     * 进度值计算参照值并克隆
     */
    @ApiModelProperty("进度值计算参照值并克隆")
    private Long progressValueCalcReferenceAndCopy;
    /**
     * 实际值计算参照值
     */
    @ApiModelProperty("实际值计算参照值")
    private Long actualValueCalcReference;

    /**
     * 实际值计算参照值并克隆
     */
    @ApiModelProperty("实际值计算参照值并克隆")
    private Long actualValueCalcReferenceAndCopy;
    /**
     * 汇报任务验证操作 COMP_GEN_REPORT_TASK:补偿生成任务 MODIFY_REPORT_TASK:修改汇报任务 RESET_REPORT_TASK:重置汇报任务 RESET_REPORT_TASK_AND_DATA:重置汇报任务及标准数据
     */
    @ApiModelProperty("汇报任务验证操作")
    private String reportTaskOperation;
    /**
     * 数据结果ID
     */
    @ApiModelProperty("数据结果ID ")
    private String dataResultId;
    /**
     * 关联目标内容ID
     */
    @ApiModelProperty("关联目标内容ID")
    private String targetCycleContentId;
    /**
     * 被评对象目标周期ID
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;
    /**
     * 子周期类型是否等于末级周期类型 EQUAL:等于 NOT_EQUAL:不等于
     */
    @ApiModelProperty("子周期类型是否等于末级周期类型")
    private String subCycleIsLastCycle;
    /**
     * 全模版托底实时计算元素
     */
    @ApiModelProperty("全模版托底实时计算元素")
    private Long evaUnderpinCalcElement;
    /**
     * 修订权重全模版重新计算元素
     */
    @ApiModelProperty("修订权重全模版重新计算元素")
    private Long reviseWeightReCalcElement;
    /**
     * 牵头人角色标识
     */
    @ApiModelProperty("牵头人角色标识")
    private String initiator;

    /**
     * 责任人角色标识
     */
    @ApiModelProperty("责任人角色标识")
    private String personLiable;
    @ApiModelProperty("角色Code列表 ")
    List<String> roleCodeList = new ArrayList<>();
    /**
     * 是否工作周期数据 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否工作周期数据")
    private String isWorkCycleData;
    /**
     * 工作周期更新切片
     */
    @ApiModelProperty("工作周期更新切片")
    private String workCycleUpdateSlice;
    /**
     * 父子中过程周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
     */
    @ApiModelProperty("父子中过程周期类型")
    private String parentSubMidCycleType;

}
